package evemanutool.data.cache; import java.util.ArrayList; import java.util.Date; import evemanutool.constants.DBConstants; import evemanutool.utils.file.Parsable; import evemanutool.utils.file.ParseTools; public class IndustryStatsEntry implements Parsable<IndustryStatsEntry>, Comparable<IndustryStatsEntry>, DBConstants { private Date date; private double buyOrderEscrow; private double sellOrderValue; private double industryWallet; private double materialValue; public IndustryStatsEntry() {} public IndustryStatsEntry(Date date, double buyOrderEscrow, double sellOrderValue, double industryWallet, double materialValue) { this.date = date; this.buyOrderEscrow = buyOrderEscrow; this.sellOrderValue = sellOrderValue; this.industryWallet = industryWallet; this.materialValue = materialValue; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public double getBuyOrderEscrow() { return buyOrderEscrow; } public void setBuyOrderEscrow(double buyOrderEscrow) { this.buyOrderEscrow = buyOrderEscrow; } public double getSellOrderValue() { return sellOrderValue; } public void setSellOrderValue(double sellOrderValue) { this.sellOrderValue = sellOrderValue; } public double getIndustryWallet() { return industryWallet; } public void setIndustryWallet(double industryWallet) { this.industryWallet = industryWallet; } public double getMaterialValue() { return materialValue; } public void setMaterialValue(double materialValue) { this.materialValue = materialValue; } public double getTotalCapital() { return buyOrderEscrow + sellOrderValue + industryWallet + materialValue; } public double getMarketOrdersValue() { return buyOrderEscrow + sellOrderValue; } @Override public int compareTo(IndustryStatsEntry o) { //Negate standard sort order => Latest first. return -Long.compare(getDate().getTime(), o.getDate().getTime()); } @Override public String toParseString() { ArrayList<Object> ss = new ArrayList<>(); ss.add(getDate().getTime()); ss.add(getBuyOrderEscrow()); ss.add(getSellOrderValue()); ss.add(getIndustryWallet()); ss.add(getMaterialValue()); return ParseTools.join(ss, LEVEL2_DELIM); } @Override public IndustryStatsEntry fromParseString(String s) { String[] ss = s.split(LEVEL2_DELIM, -1); setDate(new Date(Long.parseLong(ss[0]))); setBuyOrderEscrow(Double.parseDouble(ss[1])); setSellOrderValue(Double.parseDouble(ss[2])); setIndustryWallet(Double.parseDouble(ss[3])); setMaterialValue(Double.parseDouble(ss[4])); return this; } }